home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / social / facebook / fbutil.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  59 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from hashlib import md5
  5. from collections import defaultdict
  6.  
  7. class AttrChain(object):
  8.     
  9.     def __init__(self, name, parent):
  10.         self.name = name
  11.         self.parent = parent
  12.  
  13.     
  14.     def __getattr__(self, attr):
  15.         if attr == '_getAttributeNames':
  16.             return False
  17.         
  18.         return None(AttrChain if self.name is not None else '' + attr, self.parent)
  19.  
  20.     
  21.     def __call__(self, *a, **k):
  22.         return self.parent(self.name, *a, **k)
  23.  
  24.     
  25.     def __repr__(self):
  26.         return '<AttrChain ' + self.name + '>'
  27.  
  28.  
  29.  
  30. def signature(secret, **kw):
  31.     return md5(''.join((lambda .0: for k, v in .0:
  32. '='.join((str(k), str(v))))(sorted(kw.items()))) + secret).hexdigest()
  33.  
  34. from datetime import date
  35.  
  36. def one_per_day(seq, key = (lambda o: o)):
  37.     dates = { }
  38.     for item in seq:
  39.         val = key(item)
  40.         d = date.fromtimestamp(val)
  41.         if d not in dates or key(dates[d]) <= val:
  42.             dates[d] = item
  43.             continue
  44.     
  45.     return dates.values()
  46.  
  47.  
  48. def one_per_x_per_day(seq, x_key, time_key = (lambda o: o)):
  49.     dates = defaultdict(dict)
  50.     for item in seq:
  51.         x = x_key(item)
  52.         d = date.fromtimestamp(time_key(item))
  53.         if x not in dates[d] or time_key(dates[d][x]) <= time_key(item):
  54.             dates[d][x] = item
  55.             continue
  56.     
  57.     return []([ d.values() for d in dates.values() ], [])
  58.  
  59.